#ifndef ELEMENTIMAGE_H
#define ELEMENTIMAGE_H

#include <QObject>
#include <QImage>
#include <QtXml/QDomNode>

#include "fluffy.h"

//Изображение элемента
class ElementImage : public QObject
{
    Q_OBJECT

private:
    //Векторное изображение
    FluffyImage* image;

    //Буфер для изображения
    QImage* bufferImage;

    //Текущий масштаб
    qreal scaleImage;

public:
    ElementImage();
    ~ElementImage();

    //Отступ сверху
    int top;

    //Отступ слева
    int left;

    //Загрузить изображение элемента
    void load(const QDomNode& node);

    //Создать пустое
    void create(int width, int height);

    //Сброс буфера
    void refresh();

    //Отрисовать в буфер
    void paintToBuffer(qreal newScale);

    //Получить изображение
    QImage* getBufferImage();

    //Текущий масштаб
    qreal getScale();

signals:
    //Событие сброса буфера изображения
    void onRefresh();

    //Событие отрисовки изображения в буфер
    void onPaint(QPaintDevice* device, qreal scale);
};

#endif // ELEMENTIMAGE_H
